<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        strong{
            width: 200px;
            height: 100px;
            background: pink;
            display: block;
        }
    </style>
</head>

<body>
<div id="app">
    <v-test></v-test>
</div>
</body>
<script src="../js/vue.js"></script>
<script>

    /*
        Vue源码内部的一段代码:
            VueComponent.prototype = Object.create(Vue.prototype)

            v-test.__proto__                  --> VueComponent.prototype
            VueComponent.prototype.__proto__ --> Vue.prototype
            Vue.prototype.__proto__       --> Object.prototype
            Object.prototype.__proto__  --> null
    */
    //组件上的所有事件都是vue自定义事件
    Vue.config.productionTip = false;

    //非根组件
    Vue.component("v-test", {
        template: "<strong>v-test</strong>",
        //生命周期钩子  vue会自动执行
        mounted(){
            console.log(this,"v-test")
        }
    })

    //根组件
    new Vue({
        el: "#app",
        //回调函数  vue会自动执行
        mounted(){
            console.log(this,"app")
        }
    })
</script>

</html>